package com.example.jasonrpc.registry;

import java.util.List;

/**
 * 注册中心
 * todo:通知功能，探活功能
 */
public interface RegistryCenter {
    /**
     * 服务提供方启动时添加服务信息(服务上线)
     * 服务方发布一个主机地址到服务信息下(一个服务方法可以有多个主机提供服务)
     */
    void register(RegistryDirectory registryDirectory);

    /**
     * 服务提供方删除服务信息(服务下线)，可以只删除部分主机
     */
    void unregister(RegistryDirectory registryDirectory);

    /**
     * 消费方订阅服务：获取所有的Key
     */
    List<RegistryDirectory> subscribe(String serviceClass);
}
